openapi: 3.0.1
info:
  title: Common - Inbound to ePlanning API
  description: Common - Inbound to ePlanning API
  termsOfService: http://swagger.io/terms/
  version: v2
servers:
  - url: https://api-uat.apps1.nsw.gov.au/planning/Common/v2
paths:
  /Return/{CaseID}:
    put:
      summary: Return
      description: >-
        This operation transfers the relevant organisation's decision to return
        the application from their IT system to the ePlanning.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Return'
        required: true
      responses:
        '200':
          description: Case returned
          content: {}
        '400':
          description: Invalid request supplied
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /Reassign/{CaseID}:
    put:
      summary: Reassign
      description: >-
        This operation reassigns the case from one user to another user within
        the relevant organisation.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Reassign'
        required: true
      responses:
        '200':
          description: Case reassigned
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /ProvideAddInfo/{CaseID}:
    post:
      summary: ProvideAddInfo
      description: >-
        This operation transfers additional information uploaded by the relevant
        organisation's IT system to the ePlanning. This operation is applicable
        to certificate registration Service and referral cases.
      operationId: ProvideAddInfo
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProvideAddInfo'
        required: true
      responses:
        '200':
          description: Additional Information Provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProvideAddInfoResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                type: object
      x-codegen-request-body-name: body
  /Withdraw/{CaseID}:
    put:
      summary: Withdraw
      description: >-
        This operation transfers the relevant organisation's decision to
        withdraw the application from their IT system to the ePlanning.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Withdraw'
        required: true
      responses:
        '200':
          description: Case withdrawn
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WithdrawResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /ReqAddInfo/{CaseID}:
    post:
      summary: ReqAddInfo
      description: >-
        This operation enables the relevant organisation to request that the
        applicant uploads additional information to the ePlanning from their IT
        system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReqAddInfo'
        required: true
      responses:
        '200':
          description: Request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReqAddInfoResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /CloseAICase/{CaseID}:
    put:
      summary: CloseAICase
      description: >-
        This operation transfers the relevant organisation's decision to
        complete the application's AI case from their IT system to the ePlanning
        system.
      operationId: put-CloseAICase-caseid
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloseAICase'
        required: true
      responses:
        '200':
          description: Case closed successfully
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /Documents/{DocID}:
    get:
      summary: Documents
      description: >-
        This operation enables the external organizations to request documents
        available in ePlanning.
      operationId: GetDocumentsV2
      parameters:
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: DocID
          in: path
          description: The unique attachment ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Returns the file as a binary download
          content:
            application/*:
              schema:
                type: string
                format: binary
        '404':
          description: Document ID not found
          content:
            application/*:
              schema:
                $ref: '#/components/schemas/Error'
  /UpdateMetadata/{CaseID}:
    put:
      summary: UpdateMetadata
      description: >-
        This operation enables the relevant organisation to update the document
        as sensitive document and/or assessment document and/or published
        document.
      parameters:
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetaData'
        required: true
      responses:
        '200':
          description: Metadata updated successfully.
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/*:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/*:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /Payment/{CaseID}:
    put:
      summary: Payment
      description: >-
        This operation enables the applicant to receive the payment URL to make
        the payment.
      operationId: Payment
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatedByEmail'
        required: true
      responses:
        '200':
          description: Payment URL Generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /GetCaseInfo/{CaseID}:
    get:
      summary: GetCaseInfo
      description: >-
        This operation enables the relevant organisation to request ePlanning to
        resend the latest application from the planning portal to their IT
        system.
      operationId: GetCaseInfo
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ePlanning will send the latest event payload.
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
  /GetCaseInfoSync/{CaseID}:
    get:
      summary: GetCaseInfoSync
      description: >-
        This operation enables the relevant organisation to request ePlanning to
        resend the latest application from the planning portal to their IT
        system. The case details will be sent synchronously.
      operationId: GetCaseInfoSync
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            The latest case details of the requested caseID is returned
            synchronously. Please refer to the relevant Create operation schemas
            to map the responses. For e.g when requesting CR case details,
            CreateCR schema can be referred.
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
  /GetRegisteredUsers:
    get:
      summary: GetRegisteredUsers
      description: >-
        This operation fetches the details of the operators registered in the
        ePlanning portal.
      parameters:
        - name: organisationID
          in: header
          description: >-
            Organisation ID will be provided as input and the respective
            associated users will be fetched.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Operation successful, result attached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/output'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /CreateRef/{CaseID}:
    post:
      summary: CreateRef
      description: >-
        This operation transfers the referral details from the relevant
        organisation to create the referral in the ePlanning system.
      operationId: CreateRef
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRef'
        required: true
      responses:
        '200':
          description: Case Submitted by Applicant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRefResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /CreateExhibition/{CaseID}:
    post:
      summary: CreateExhibition
      description: >-
        This operation transfers the exhibition details from the relevant
        organisation to create the exhibition in the ePlanning system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing.Typically, a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Exhibition'
        required: true
      responses:
        '200':
          description: Exhibition case has been created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateExhibitionResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /UpdateExhibition/{CaseID}:
    put:
      summary: UpdateExhibition
      description: >-
        This operation transfers the exhibition details from the relevant
        organisation to update the exhibition in the ePlanning system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified exhibition case number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing.Typically, a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditExhibition'
        required: true
      responses:
        '200':
          description: Case updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /CreateSubmission/{CaseID}:
    post:
      summary: CreateSubmission
      description: >-
        This operation transfers the submission details from the relevant
        organisation to create the submission case in the ePlanning system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified Exhibition case number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubmission'
        required: true
      responses:
        '200':
          description: Case updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /Reject/{CaseID}:
    put:
      summary: Reject
      description: >-
        This operation transfers the relevant organisation's decision to reject
        the application from their IT system to the ePlanning.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Reject'
        required: true
      responses:
        '200':
          description: Case rejected
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /AllConsentConditions:
    get:
      summary: AllConsentConditions
      description: >-
        This operation retrieves all of the active conditions available in the
        DPE Condition library and Council specific Condition library.
      operationId: AllConsentConditions
      parameters:
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Conditions retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllConsentConditions'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /CouncilLibrary:
    post:
      summary: CouncilLibrary
      description: >-
        This operation allows the consent authority to add new Bespoke
        conditions to the Council's condition library.
      operationId: CreateCouncilCondition
      parameters:
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: CreateCondition request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCouncilConditions'
        required: true
      responses:
        '200':
          description: Condition(s) created sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCouncilConditionsSuccess'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCouncilConditionsFailure'
      x-codegen-request-body-name: body
  /CouncilLibrary/{ConditionID}:
    put:
      summary: CouncilLibrary
      description: >-
        This operation enables the consent authority to update an existing
        Bespoke condition in Council's condition library.
      operationId: UpdateCouncilCondition
      parameters:
        - name: ConditionID
          in: path
          description: This indicates the Condition ID generated by DPE.
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: UpdateCondition request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCouncilConditions'
        required: true
      responses:
        '200':
          description: Condition Updated sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
    delete:
      summary: CouncilLibrary
      description: >-
        This operation enables the consent authority to delete an existing
        Bespoke condition in the Council's condition library.
      operationId: DeleteCouncilConditions
      parameters:
        - name: ConditionID
          in: path
          description: This indicates the Condition ID generated by DPE.
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
        - name: ReasonForDeletion
          in: header
          description: This field is to capture the reason for deleting the condition
          required: true
          schema:
            type: string
            maximum: 1000
      responses:
        '200':
          description: Condition deleted sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /ConsentConditions/{CaseID}:
    put:
      summary: ConsentConditions
      description: >-
        This operation overwrites all the conditions specific to a development
        application. It is required to have atleast one general condition in the
        API request. During Mod and Review of a DA, if any condition needs to be
        retained from the previous determination then the Condition ID should be
        passed as stored in the previous case.
      operationId: ConsentConditions
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: ConsentConditions request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsentConditions'
        required: true
      responses:
        '200':
          description: ConsentConditions Updated sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentConditionsFailure'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /GenerateNOD/{CaseID}:
    post:
      summary: GenerateNOD
      description: >-
        This operation allows the consent authority to validate and save the
        fields required for generating Notice of determination for a specific
        case (either draft version or final version) or validate and save the
        fields required for generating review letter if it is a review of a DA.
        The generation of NOD will happen offline and once the NOD is generated,
        ePlanning system will notify using the NotificationOfNODStatus API
      operationId: GenerateNOD
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: GenerateNOD request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateNOD'
        required: true
      responses:
        '200':
          description: Generate NOD request received sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateNODSuccess'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /SanitizeData:
    post:
      summary: SanitizeData
      description: >-
        This operation allows the consent authority to sanitize the conditions
        data to validate the request payload.
      operationId: SanitizeData
      parameters:
        - name: OrganisationID
          in: header
          description: >-
            The relevant organisation name to indicate where the request is
            originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: SanitizeData request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SanitizeData'
        required: true
      responses:
        '200':
          description: Condition(s) sanitized sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SanitizeData'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /CSIPerformed/{CaseID}:
    post:
      summary: CSIPerformed
      operationId: CSIPerformed
      description: >-
        This operation transfers the certifier's critical stage inspection (CSI)
        information from the certifier's IT system to the ePlanning portal after
        the inspection has been performed. This operation is applicable for
        Complying Development Certificate (CDC) and Construction Certificate
        (CC) applications and it is available only after the determination
        stage. Reference data values can be obtained from the reference data API
        using the PCC or CDC digital service along with the  corresponding
        operation.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          example: CDC-1234 OR CFT-1234
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The council LGA name or Private Certifier Organisation name to
            indicate where the request is originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CSIPerformed'
        required: true
      responses:
        '200':
          description: Additional Information Provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /CSIMissed/{CaseID}:
    post:
      summary: CSIMissed
      description: >-
        This operation transfers the certifier's critical stage inspection (CSI)
        missed information from the certifier's IT system to the ePlanning
        portal. This operation is applicable for Complying Development
        Certificate (CDC) and Construction Certificate (CC) applications and it
        is available only after the determination stage. By performing this
        operation, the certifier declares that the work that would have been the
        subject of the missed inspection, is deemed satisfactory. Reference data
        values can be obtained from the reference data API using the PCC or CDC
        digital service along with the  corresponding operation.
      operationId: CSIMissed
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          example: CDC-1234 OR CC-1234
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The council LGA name or Private Certifier Organisation name to
            indicate where the request is originated from..
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CSIMissed'
        required: true
      responses:
        '200':
          description: Critical stage inspection case created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /CreateWDN/{CaseID}:
    post:
      summary: CreateWDN
      description: >-
        This operation transfers the certifier's Written Direction Notice(WDN)
        PART A -information from the certifier's IT system to the ePlanning
        portal. This operation is applicable for Complying Development
        Certificate (CDC) and Construction Certificate (CC) applications and it
        is available only after the determination stage. By performing this
        operation, the certifier confirms that all relevant legislative
        requirements have been considered and adhered to. Reference data values
        can be obtained from the reference data API using the PCC or CDC digital
        service along with the  corresponding operation.
      operationId: CreateWDN
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          example: CDC-1234 OR CFT-1234
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The council LGA name or Private Certifier Organisation name to
            indicate where the request is originated from.
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWDN'
        required: true
      responses:
        '200':
          description: Additional Information Provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /UpdateWDN/{CaseID}:
    put:
      summary: UpdateWDN
      description: >-
        This operation transfers the certifier's Written Direction Notice (WDN)
        PART B - Inspection information from the certifier's IT system to the
        ePlanning portal. This operation is applicable for Complying Development
        Certificate (CDC) and Construction Certificate (CC) applications and it
        is available only after the determination stage. Reference data values
        can be obtained from the reference data API using the PCC or CDC digital
        service along with the  corresponding operation.
      operationId: UpdateWDN
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          example: WDN-1234
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The council LGA name or Private Certifier Organisation name to
            indicate where the request is originated from..
          required: true
          schema:
            type: string
        - name: IdempotencyID
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWDN'
        required: true
      responses:
        '200':
          description: Additional Information Provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /CreateContribution/{CaseID}:
    post:
      summary: CreateContribution
      operationId: CreateContribution
      description: >-
        This operation enables the consent authority to create a Contributions
        case in the ePlanning system.
      parameters:
        - name: CaseID
          in: path
          description: >-
            A fully qualified parent case number. It can be of format PAN-xxxx
            or CDC-xxxx.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateContribution'
        required: true
      responses:
        '200':
          description: Contribution Case created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateContributionResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionResponse400'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionResponse404'
  /UpdateContribution/{CaseID}:
    put:
      summary: UpdateContribution
      operationId: UpdateContribution
      description: >-
        This operation transfers the Contribution case details from external
        system to ePlanning system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified Contributions case number, format CON-xxxx.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateContribution'
        required: true
      responses:
        '200':
          description: Contribution Case updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateContributionResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionResponse400'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContributionResponse404'
components:
  schemas:
    CreateRef:
      required:
        - updatedByEmail
      type: object
      properties:
        updateReason:
          maxLength: 1500
          type: string
          description: >-
            This is to track the reason(s) for adding new referral(s) and/or
            uploading documents.
        agencyList:
          type: array
          description: This is to track the the agency name(s).
          items:
            $ref: '#/components/schemas/agencyList'
        Documents:
          type: array
          description: Upload the documents if required as it is an optional field.
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    referralRequiredDocType:
      type: string
      description: >-
        This is to track the document required for referral. One of the below
        mentioned values must be selected for document required for referral. 1.
        Land Title Instruments 2. Compliance Certificate 3. Boundary Approvals
        4. Other
      example: Refer to description for values
    agencyList:
      type: object
      properties:
        agencyName:
          type: string
          description: >-
            This is to track the name of the agency which provides the decision.
            Few sample agency names are given below. Please reach out to DPE API
            support team for the complete list of agencies as required. list 1.
            Ausgrid 2. City of Sydney (Heritage Act delegation) 3. DPE - Crown
            Lands 4. Endeavour Energy 5. Essential Energy 6. Hunter Water
            Corporation 7. SGSP (Australia) Assets Pty Ltd (branded as Jemena)
            8. DPE - National Parks and Wildlife Service (NPWS) 9. Rail
            Infrastructure Corporation (Sydney Trains) 10. Roads and Maritime
            Service 11. Sydney Water Corporation 12. Transgrid Services Pty
            Limited 13. WaterNSW 14. DPE - Biodiversity, Conservation and
            Science 15. DPE - Hunter and Central Coast Development Corporation
            16.Other Agency
          example: Refer to description for values
        otherAgencyName:
          type: string
          description: >-
            This is to track the other agency name, applicable only when
            agencyName=="other Agency".
        agencyReferenceNumber:
          type: string
          description: >-
            This is to track the agency reference number and it's an optional
            field.
        reasonForReferral:
          maxLength: 512
          type: string
          description: This is to track the reason why this referral is being made.
        requiredDocumentType:
          type: array
          description: >-
            This is to track the list of required documents for each agency
            name.
          items:
            $ref: '#/components/schemas/referralRequiredDocType'
      description: This is to track the fields of agency.
    UpdatedByEmail:
      type: object
      properties:
        updatedByEmail:
          maxLength: 250
          type: string
          description: Registered user mail address who performing the action.
          example: johnsmith@yopmail.com
    Payment:
      type: object
      properties:
        PaymentURL:
          type: string
          description: Payment URL - to be used to Pay
          example: >-
            https://gpp-digital-ui-preprod.apps.pcf-ext.testservicensw.net?paymentReference=
            GPP-DIG-7LmKhNViSICwuH9GHdyoZg
    MetaData:
      title: MetaData
      type: object
      properties:
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/DocumentsInfo'
        updatedByEmail:
          maxLength: 256
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    DocumentsInfo:
      required:
        - docID
        - isAssessmentDoc
        - isSensitiveDoc
      type: object
      properties:
        docID:
          type: string
          description: ePlanning document ID.
          example: >-
            DATA-WORKATTACH-FILE PEC-DPE-EP-WORK CDC-7850!20201124T125127.562
            GMT
        isAssessmentDoc:
          type: boolean
          description: This field is to update the document as assessment
        isSensitiveDoc:
          type: boolean
          description: This field is to update the document as sensitive
        isPublishDoc:
          type: boolean
          description: >-
            This field is to indicate if the document must be published to
            subsite for Exhibition purposes. Applicable only for State DA to
            publish the documents.
    CloseAICase:
      title: CloseAICase
      required:
        - updatedByEmail
      type: object
      properties:
        childCaseID:
          type: string
          example: AI-XXXX
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    DocResponse:
      title: DocResponse
      type: object
      properties:
        documentName:
          type: string
          description: documentName which was uploaded as part of respective API opeartion
          example: test.docx
        documentType:
          type: string
          description: Type of Document under which repsective document was uploaded
        eplanningDocId:
          type: string
          description: DocId of the respective document which was uploaded
        externalOrgDocURL:
          type: string
          description: URL of the document which was uploaded
    Return:
      required:
        - returnDate
        - returnReasonDescriptionForOther
        - returnReasons
        - updatedByEmail
      type: object
      properties:
        returnDate:
          type: string
          description: Date of return
          format: date
        returnReasons:
          type: array
          items:
            $ref: '#/components/schemas/returnReason'
        returnReasonDescriptionForOther:
          maxLength: 512
          type: string
          description: >-
            This is to track the detailed reason the council is returning the
            application, required only when return reason was selected as Other.
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    Reassign:
      required:
        - assignee
        - updatedByEmail
      type: object
      properties:
        assignee:
          $ref: '#/components/schemas/Person'
        updatedByEmail:
          maxLength: 256
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
      description: This is to track the person to whom this case is assigned to
    output:
      required:
        - statusCode
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Operation successful, result attached
        registeredUsersList:
          type: array
          items:
            $ref: '#/components/schemas/UsersOutput'
    Withdraw:
      required:
        - updatedByEmail
        - withdrawalDate
      type: object
      properties:
        withdrawalDate:
          type: string
          description: This is to track the date on which the case is withdrawn
          format: date
        withdrawalReason:
          maxLength: 512
          type: string
          description: >-
            This is to track the reason why the case is withdrawn.Please refer
            to the reference data API for the latest values. For Housing and
            Productivity contribution cases, one of the predefined reasons per
            below can be used while withdrawing the case. 1.Applicable
            contributions framework not available in the Portal 2.Contributions
            framework no longer applicable 3.Other
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    ReqAddInfo:
      required:
        - requestDetails
        - updatedByEmail
      type: object
      properties:
        requestDetails:
          type: string
          description: This is to track the short description of the request
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    Person:
      type: object
      properties:
        person:
          $ref: '#/components/schemas/PersonBody'
    returnReason:
      type: string
      description: >-
        This is to track the reason for returning the application. One of the
        below mentioned values must be selected for return reason 1. Incomplete
        2. Poor Quality 3. Payment Not Received 4. Other
      example: Refer to description for values
    ProvideAddInfo:
      required:
        - provideDetails
        - updatedByEmail
      type: object
      properties:
        provideDetails:
          maxLength: 512
          type: string
          description: >-
            This is to track the description of the response, required when
            certifier is providing additional information
        childCaseID:
          type: string
          description: Required only if responding to an existing AI case id for RFI
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    UsersOutput:
      type: object
      properties:
        user:
          type: string
          description: Operator ID of the user.
          example: abc@yopmail.com
        digitalServices:
          type: array
          items:
            $ref: '#/components/schemas/DigitalServices'
    DigitalServices:
      type: object
      properties:
        digitalService:
          type: string
          description: The digital service for which current user is having access to.
          example: Development Application
        role:
          type: string
          description: The type of organisation the user is associated with.
          example: Council
    PersonBody:
      required:
        - contactNumber
        - emailAddress
        - firstName
        - surname
      type: object
      properties:
        firstName:
          maxLength: 32
          type: string
          example: John
        otherName:
          type: string
          example: Darren
        surname:
          maxLength: 32
          type: string
          example: Smith
        emailAddress:
          maxLength: 256
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
        contactNumber:
          maxLength: 10
          pattern: ^[0-9]+$
          type: string
    DownloadableDocument:
      required:
        - documentName
        - documentType
        - documentURL
        - uploadedDateTime
      type: object
      properties:
        documentName:
          maxLength: 150
          type: string
        documentType:
          maxLength: 100
          type: string
        uploadedDateTime:
          type: string
          format: date-time
        documentURL:
          maxLength: 500
          type: string
          description: URL of the document to be downloaded
          format: uri
    declarations:
      required:
        - declaration
      type: object
      properties:
        declaration:
          type: string
          description: >-
            Holds the consents the user is supposed to provide on submitting the
            application. - The submission will be kept in accordance to the
            Privacy statement
          example: Refer to description for values
    Error:
      required:
        - errorCode
        - statusCode
      type: object
      properties:
        statusCode:
          type: integer
          example: 404
        message:
          type: string
          example: Internal Server error 19876
        activityId:
          type: string
          example: 00000011-0ab-xy00-0000-500000000000
        errorCode:
          type: string
          example: DPE_TMS01
        errorDetails:
          type: string
          example: Inner Exceptions, Stack Trace, etc
    CreateSubmission:
      required:
        - declarations
        - email
        - exhibitionCaseID
        - postCode
        - state
        - submission
        - submissionConsent
        - submissionType
        - suburbTownPostcode
        - updatedByEmail
      type: object
      properties:
        submissionType:
          type: string
          description: >-
            This is to track the application submission type. One of the below
            mentioned values must be selected for submission types. 1. I am
            making a personal submission 2. I am submitting on behalf of my
            organisation 3. I am submitting on behalf of a Government
            agency/authority
          example: Refer to description for values
        exhibitionCaseID:
          type: string
          description: >-
            A fully qualified exhibition case number which is associated with
            the relevant case ID provided in header.
          example: EXH-XXXX
        organisationName:
          maxLength: 20
          type: string
          description: >-
            This is to track the government agency/authority organisation name.
            Applicable when submissionType is 'I am submitting on behalf of a
            Government agency/authority'
        positionInOrganisation:
          maxLength: 20
          type: string
          description: >-
            This is to track the applicant's position in the organisation.
            Applicable when submissionType is 'I am submitting on behalf of a
            Government agency/authority'
        title:
          type: string
          description: >-
            Salutation of the user. One of the below mentioned values must be
            selected for salutaion of the user 1. Mr 2. Mrs 3. Ms 4. Miss
          example: Refer to description for values
        firstName:
          maxLength: 20
          type: string
          description: This is to track the first name
        familyName:
          maxLength: 20
          type: string
          description: This is to track the family name.
        nameWithheld:
          type: boolean
          description: >-
            This is to track if the person who submits does not want their name
            published. This is not applicable when submissionType is 'I am
            submitting on behalf of a Government agency/authority'
        email:
          type: string
          description: This is to track the Email Id.
        address1:
          type: string
          description: This is to track the address.
        address2:
          type: string
          description: This is to track the additional address.
        suburbTownPostcode:
          type: string
          description: This is to track the suburb town postcode.
        postCode:
          type: number
          description: This is to track the PostCode.
        state:
          type: string
          description: >-
            This is to track the State.One of the below mentioned values must be
            selected for state 1. Australian Capital Territory 2. New South
            Wales 3. Northern Territory 4. Queensland 5. South Australia 6.
            Tasmania 7. Victoria 8. Western Australia
          example: Refer to description for values.
        reportablePoliticalDonation:
          type: boolean
          description: >-
            This is to track if the applicant has any political donations to
            report
        submissionConsent:
          type: string
          description: >-
            This is to track the opinion of the applicant on the submission. One
            of the below mentioned values must be selected for submission
            content 1. I support it 2. I object to it 3. I am just providing
            comments
          example: Refer to description for values
        submission:
          maxLength: 10000
          type: string
        declarations:
          type: array
          description: Required applicant declaration for create submission.
          items:
            $ref: '#/components/schemas/declarations'
        Documents:
          type: array
          description: Applicable for online DA application.
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    Exhibition:
      required:
        - exhbitionTitle
        - exhibitionEndDate
        - exhibitionStartDate
        - updatedByEmail
      type: object
      properties:
        exhbitionTitle:
          maxLength: 100
          type: string
          description: >-
            This is to track the title of the exhibition and this field is
            mandatory when the consent authority selects
            doesPublicExhibitionRequired is selected as true.
        exhibitionStartDate:
          type: string
          description: >-
            This is to track the start date of the exhibition and this field is
            mandatory when the applicant select doesPublicExhibitionRequired is
            selected as true.
          format: date
        exhibitionEndDate:
          type: string
          description: >-
            This is to track the end date of the exhibition and this field is
            mandatory when the applicant select doesPublicExhibitionRequired is
            selected as true.
          format: date
        comments:
          maxLength: 512
          type: string
          description: >-
            This is an optional field to provide comments in the exhibition
            details screen. This can be used during creation or updating the
            exhibition.
        detailedDescription:
          type: string
          description: >-
            This field is applicable for State DA and Mandatory to provide
            detailed description in Exhibition details screen. This can be used
            during creation or updating the exhibition.
        addNewsPaper:
          type: array
          items:
            $ref: '#/components/schemas/NewsPaper'
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/DocumentsToUpload'
        DocumentsToPublish:
          type: array
          description: this is to publish the existing documents
          items:
            $ref: '#/components/schemas/DocumentsToPublish'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    EditExhibition:
      required:
        - exhibitionEndDate
        - updatedByEmail
      type: object
      properties:
        exhibitionStartDate:
          type: string
          description: >-
            This is to track the start date of the exhibition. This field is not
            applicable when the case status in 'On Exhibition' status.
          format: date
        exhibitionEndDate:
          type: string
          description: >-
            This is to track the end date of the exhibition and this field is
            mandatory when the applicant select doesPublicExhibitionRequired is
            selected as true.
          format: date
        comments:
          maxLength: 512
          type: string
          description: >-
            This is an optional field to provide comments in the exhibition
            details screen. This can be used during creation or updating the
            exhibition.
        detailedDescription:
          type: string
          description: >-
            This field is applicable for State DA and Mandatory to provide
            detailed description in Exhibition details screen. This can be used
            during creation or updating the exhibition.
        addNewsPaper:
          type: array
          items:
            $ref: '#/components/schemas/NewsPaper'
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/DocumentsToUpload'
        DocumentsToPublish:
          type: array
          description: this is to publish the existing documents
          items:
            $ref: '#/components/schemas/DocumentsToPublish'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    NewsPaper:
      required:
        - dateOfCirculation
        - hasSlotBooked
        - nameOfNewsPaper
      type: object
      properties:
        nameOfNewsPaper:
          maxLength: 100
          type: string
          description: >-
            This is mandatory field when user selects to add newspaper. This can
            be used during creation or updating the exhibition.
        hasSlotBooked:
          type: boolean
          description: >-
            This is to track if any slots are booked and this field is mandatory
            field when user selects to add News Paper. This can be used during
            creation or updating the exhibition.
        dateOfCirculation:
          type: string
          description: >-
            This is to track date of circulation and this field is Mandatory
            Field when user selects to add News Paper. This can be used during
            creation or updating the exhibition.
          format: date
    DocumentsToPublish:
      required:
        - docID
      type: object
      properties:
        docID:
          type: string
          description: Document Id which was received as part of outbound call.
          example: >-
            DATA-WORKATTACH-FILE PEC-DPE-EP-WORK CDC-7850!20201124T125127.562
            GMT.
        isPublishDoc:
          type: boolean
          description: >-
            This is an optional filed. user to select to indicate if the
            document must be published to subsite
    DocumentsToUpload:
      required:
        - documentName
        - documentType
        - documentURL
        - uploadedDateTime
      type: object
      properties:
        documentName:
          maxLength: 150
          type: string
          description: documentName has to be appended with file extension
          example: test.docx
        documentType:
          maxLength: 100
          type: string
        uploadedDateTime:
          type: string
          format: date-time
        documentURL:
          maxLength: 500
          type: string
          description: URL of the document to be downloaded
          format: uri
        isPublishDoc:
          type: boolean
          description: >-
            This is a optional filed. user to select to indicate if the document
            must be published to subsite
    CreateExhibitionResponse:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Exhibition case has been created successfully
        caseID:
          type: string
          example: EXH-1234
        Documents:
          type: array
          description: Attached documents with eplanningDocIds.
          items:
            $ref: '#/components/schemas/DocResponse'
    ProvideAddInfoResponse:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Additional Information Provided
        activityId:
          type: string
        Documents:
          type: array
          description: Attached documents with eplanningDocIds.
          items:
            $ref: '#/components/schemas/DocResponse'
    WithdrawResponse:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Case withdrawn
        activityId:
          type: string
        Documents:
          type: array
          description: Attached documents with eplanningDocIds.
          items:
            $ref: '#/components/schemas/DocResponse'
    ReqAddInfoResponse:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Request created
        caseID:
          type: string
          description: Case ID of the additional information request.
          example: AI-XXXX
        activityId:
          type: string
        Documents:
          type: array
          description: Attached documents with eplanningDocIds.
          items:
            $ref: '#/components/schemas/DocResponse'
    CreateRefResponse:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Case Submitted by Applicant
        activityId:
          type: string
        Documents:
          type: array
          description: Attached documents with eplanningDocIds.
          items:
            $ref: '#/components/schemas/DocResponse'
    Response:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Case updated
        activityId:
          type: string
        Documents:
          type: array
          description: Attached documents with eplanningDocIds.
          items:
            $ref: '#/components/schemas/DocResponse'
    Reject:
      required:
        - rejectDate
        - rejectReason
        - rejectReasonDescription
      type: object
      properties:
        rejectDate:
          type: string
          description: This is to track the date of rejection
          format: date
        rejectReason:
          type: string
          description: >-
            This is to track the different reasons for rejecting. One of the
            below mentioned values must be selected for reject reasons 1. The
            application is illegible or unclear as to the development consent
            sought 2. The application does not contain the information specified
            in Part 1 of Schedule 1 of the EP&A Regulation 3. The application is
            for State significant development or designated development and is
            not accompanied by an environmental impact statement
          example: Refer to description for values
        rejectReasonDescription:
          type: string
          maxLength: 512
          description: >-
            This is to track the detailed reason the council is rejecting the
            application
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    Conditions:
      required:
        - conditionID
        - conditionType
        - conditionTitle
        - conditionText
        - effectiveDate
        - typeOfWork
        - developmentStage
        - reasonForReporting
        - updatedTimestamp
      type: object
      properties:
        conditionID:
          type: string
          format: string
          description: This indicates the Condition ID generated by DPE.
          example: COND-123
        conditionType:
          type: string
          description: >-
            This indicates the type of Conditions in library. conditionType can
            have following values. 1.Bespoke:indicates conditions in Council
            library at DPE 2.Model:indicates model conditions in DPE library
            3.Prescribed:indicates prescribed conditions in DPE library (*
            Values are case sensitive)
          example: Bespoke
        conditionTitle:
          type: string
          description: This indicates the title of Condition.
          example: Approved Plans
        conditionText:
          type: string
          description: >-
            This indicates the condition text in HTML format. Council can
            receive images in condition text in the img tag. img tag contains
            the documentID of the image file. Council can use GetDocument API
            for retrieving imag e document by passing base64 encoded document
            key.
          example: >-
            <p>Sample text <img height="255"
            src="https%3A%2F%2Fapi-tst.apps1.nsw.gov.au%2Fplanning%2FDocMgmt%2Fv1%2FDocuments%2FDATA-CONTENT-IMAGE
            CONIMG21686646077367!PNG!/RTEIMAGES/" width="500"></p>
        conditionReason:
          type: string
          description: >-
            This indicates the reason why a Condition is being added in Council
            library.
          example: Plans condition
        effectiveDate:
          type: string
          description: >-
            This indicates the date from when condition will be effective in the
            ePlanning & Council system.
          example: '2022-03-16'
          format: date
        expiryDate:
          type: string
          description: This indicates the expiration date of the condition.
          example: '2023-03-16'
          format: date
        typeOfWork:
          type: string
          description: >-
            This indicates the type of work mentioned in the condition. This
            field has following options - 1.Building Work, 2.Demolition Work,
            3.Subdivision Work,4.Remediation Work, 5.Strata Subdivision,
            6.Change of use, 7.Land Subdivision, 8.Other
          example: Demolition Work
        developmentStage:
          type: string
          description: >-
            This indicates the stage of development that are relevant to the
            condition. This field has following options - 1. During building
            work, 2. During demolition work, 3. During subdivision work, 4.
            Before building work commences, 5. Before remediation work
            commences, 6. Before subdivision work commences, 7. Before issue of
            an occupation certificate, 8. Ongoing use for subdivision work, 9.
            Occupation and ongoing use, 10. Before issue of a construction
            certificate, 11. Before issue of a subdivision certificate, 12.
            Before issue of a strata certificate, 13. Before issue of a
            subdivision works certificate, 14. On completion of demolition work,
            15.On completion of remediation work, 16. Ongoing use for change of
            use, 17. Before demolition work commences, 18. During remediation
            work, 19. General condition
          example: General condition
        reasonForReporting:
          type: string
          description: This indicates the reason for adding this condition.
          example: This is for reporting purpose
        councilConditionID:
          type: string
          format: string
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
          example: SAMPLE-123
        updatedTimestamp:
          type: string
          description: This indicates the time stamp when conditon gets updated.
          format: date-time
        updatedByEmail:
          type: string
          example: abc@gmail.com
          description: User's email who has updated the condition.
    AllConsentConditions:
      required:
        - conditions
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/Conditions'
    CreateCouncilConditions:
      required:
        - conditions
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/CreateCouncilConditionsDetails'
    CreateCouncilConditionsDetails:
      required:
        - conditionTitle
        - conditionText
        - effectiveDate
        - typeOfWork
        - developmentStage
        - reasonForReporting
        - updatedByEmail
      type: object
      properties:
        conditionTitle:
          maxLength: 256
          type: string
          description: This indicates the title of Condition.
          example: Approved Plans
        conditionText:
          maxLength: 300000
          type: string
          description: >-
            This indicates the condition text in HTML format. Council should
            send image document with png, jpg, jpeg extension(s) only in the img
            tag in Condition text. Image size can be maximum 600px in width and
            252 px in height.
          example: >-
            <p><img src ='http://councilbaseurl/Documents/ConImg2.png'
            width='300' height='150'></p>
        conditionReason:
          maxLength: 256
          type: string
          description: This indicates the reason for creating a condition.
          example: Plans condition
        effectiveDate:
          maxLength: 10
          type: string
          description: >-
            This indicates the date from when condition will be effective in the
            ePlanning & Council system.
          example: '2022-03-16'
          format: date
        typeOfWork:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of work mentioned in the condition. This
            field has following options - 1.Building Work, 2.Demolition Work,
            3.Subdivision Work,4.Remediation Work, 5.Strata Subdivision,
            6.Change of use, 7.Land Subdivision, 8.Other
          example: Demolition Work
        reasonForReporting:
          maxLength: 1000
          type: string
          description: This indicates the reason for adding this condition.
          example: This is for reporting purpose
        developmentStage:
          maxLength: 256
          type: string
          description: >-
            This indicates the stage of development that are relevant to the
            condition. This field has following options - 1. During building
            work, 2. During demolition work, 3. During subdivision work, 4.
            Before building work commences, 5. Before remediation work
            commences, 6. Before subdivision work commences, 7. Before issue of
            an occupation certificate, 8. Ongoing use for subdivision work, 9.
            Occupation and ongoing use, 10. Before issue of a construction
            certificate, 11. Before issue of a subdivision certificate, 12.
            Before issue of a strata certificate, 13. Before issue of a
            subdivision works certificate, 14. On completion of demolition work,
            15.On completion of remediation work, 16. Ongoing use for change of
            use, 17. Before demolition work commences, 18. During remediation
            work, 19. General condition
          example: General condition
        councilConditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
          example: SAMPLE-123
        updatedByEmail:
          maxLength: 256
          type: string
          example: abc@gmail.com
          description: User must be registered in the planning portal
    CreateCouncilConditionsValidationFailure:
      required:
        - conditionTitle
        - conditionText
        - effectiveDate
        - typeOfWork
        - developmentStage
        - reasonForReporting
        - updatedByEmail
        - failureReason
      type: object
      properties:
        conditionTitle:
          maxLength: 256
          type: string
          description: This indicates the title of Condition
          example: Approved Plans
        conditionText:
          maxLength: 300000
          type: string
          description: >-
            This indicates the condition text that is required to be added in
            the library.
          example: <p>This a sample HTML condition text</p>
        conditionReason:
          maxLength: 256
          type: string
          description: This indicates the reason of Condition
          example: Plans condition
        effectiveDate:
          maxLength: 10
          type: string
          description: >-
            This indicates the date from when condition will be effective in the
            ePlanning & Council system.
          example: '2022-03-16'
          format: date
        typeOfWork:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of work mentioned in the condition. This
            field has following options - 1.Building Work, 2.Demolition Work,
            3.Subdivision Work,4.Remediation Work, 5.Strata Subdivision,
            6.Change of use, 7.Land Subdivision, 8.Other
          example: Demolition Work
        reasonForReporting:
          maxLength: 1000
          type: string
          description: This indicates the reason of reporting
          example: This is for reporting purpose
        developmentStage:
          maxLength: 256
          type: string
          description: >-
            This indicates the stage of development that are relevant to the
            condition. This field has following options - 1. During building
            work, 2. During demolition work, 3. During subdivision work, 4.
            Before building work commences, 5. Before remediation work
            commences, 6. Before subdivision work commences, 7. Before issue of
            an occupation certificate, 8. Ongoing use for subdivision work, 9.
            Occupation and ongoing use, 10. Before issue of a construction
            certificate, 11. Before issue of a subdivision certificate, 12.
            Before issue of a strata certificate, 13. Before issue of a
            subdivision works certificate, 14. On completion of demolition work,
            15.On completion of remediation work, 16. Ongoing use for change of
            use, 17. Before demolition work commences, 18. During remediation
            work, 19. General condition
          example: General condition
        councilConditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
          example: SAMPLE-123
        updatedByEmail:
          maxLength: 256
          type: string
          example: abc@gmail.com
          description: User must be registered in the planning portal
        failureReason:
          type: string
          example: Condition validation failure text
          description: This indicates the condition validation failure details
    CreateCouncilConditionsSuccess:
      required:
        - statusCode
        - message
        - conditionDetails
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Request is successfully executed
        conditionDetails:
          type: array
          description: >-
            These detils gets populated only in case of success where all the
            conditions gets successfully added in Eplanning
          items:
            $ref: '#/components/schemas/ConditionDetails'
    CreateCouncilConditionsFailure:
      required:
        - statusCode
        - message
        - validationFailure
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: string
          example: Request is unsuccessful
        validationFailure:
          type: array
          description: >-
            These detils gets populated in case if any condition gets failed in
            the request and none of the conditons get added in Eplanning
          items:
            $ref: '#/components/schemas/CreateCouncilConditionsValidationFailure'
    ConditionDetails:
      required:
        - conditionID
        - conditionTitle
        - effectiveDate
      type: object
      properties:
        conditionID:
          type: string
          example: COND-123
          description: This indicates the Condition ID generated by DPE.
        councilConditionID:
          type: string
          example: SAMPLE-123
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
        conditionTitle:
          type: string
          example: Approved Plans
          description: Condition Title
        effectiveDate:
          type: string
          description: Condtition Effective Date
          format: date
          example: '2022-10-22'
    UpdateCouncilConditions:
      required:
        - conditionTitle
        - conditionText
        - newEffectiveDate
        - typeOfWork
        - developmentStage
        - reasonForReporting
        - updatedByEmail
      type: object
      properties:
        conditionTitle:
          maxLength: 256
          type: string
          description: This indicates the title of the Condition.
          example: Approved Plans
        conditionText:
          maxLength: 300000
          type: string
          description: >-
            This indicates the condition text in HTML format. Council should
            send image document with png, jpg, jpeg extension(s) only in the img
            tag in Condition text. Image size can be maximum 600px in width and
            252 px in height.
          example: >-
            <p><img src ='http://councilbaseurl/Documents/ConImg2.png'
            width='300' height='150'></p>
        conditionReason:
          maxLength: 256
          type: string
          description: >-
            This indicates the reason why a Condition is being added in Council
            library.
          example: Plans condition
        newEffectiveDate:
          maxLength: 10
          type: string
          description: >-
            This indicates the date from when the updated Condition will be
            effective in the ePlanning & Council system.
          example: '2022-03-16'
          format: date
        newExpiryDate:
          maxLength: 10
          type: string
          description: This indicates the expiration date of the updated condition.
          example: '2023-03-16'
          format: date
        typeOfWork:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of work mentioned in the condition. This
            field has following options - 1.Building Work, 2.Demolition Work,
            3.Subdivision Work,4.Remediation Work, 5.Strata Subdivision,
            6.Change of use, 7.Land Subdivision, 8.Other
          example: Demolition Work
        reasonForReporting:
          maxLength: 1000
          type: string
          description: This indicates the reason for adding this condition.
          example: This is for reporting purpose
        developmentStage:
          maxLength: 256
          type: string
          description: >-
            This indicates the stage of development that are relevant to the
            condition. This field has following options - 1. During building
            work, 2. During demolition work, 3. During subdivision work, 4.
            Before building work commences, 5. Before remediation work
            commences, 6. Before subdivision work commences, 7. Before issue of
            an occupation certificate, 8. Ongoing use for subdivision work, 9.
            Occupation and ongoing use, 10. Before issue of a construction
            certificate, 11. Before issue of a subdivision certificate, 12.
            Before issue of a strata certificate, 13. Before issue of a
            subdivision works certificate, 14. On completion of demolition work,
            15.On completion of remediation work, 16. Ongoing use for change of
            use, 17. Before demolition work commences, 18. During remediation
            work, 19. General condition
          example: General condition
        councilConditionID:
          maxLength: 256
          type: string
          example: SAMPLE-123
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
        updatedByEmail:
          maxLength: 256
          type: string
          example: abc@gmail.com
          description: >-
            This refers to the email address of the User. User is expected to
            be   registered in the planning portal.
    ConsentConditions:
      required:
        - conditions
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/ConsentConditionsDetails'
    ConsentConditionsDetails:
      required:
        - conditionTitle
        - conditionText
        - updatedByEmail
      type: object
      properties:
        conditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Condition ID generated by DPE. This field should
            be empty if Conditon is applied only for a specific application and
            Condition is not available in Council library in DPE. This field is
            mandatory when the Condition type is selected as Prescribed or Model
          example: COND-123
        conditionType:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of Conditions in library. If the condition
            type is sent as blank it will be treated as Bespoke condition if
            that condition ID is not available in the library. conditionType can
            have following values. 1.Bespoke:indicates conditions in Council
            library at DPE 2.Model:indicates model conditions in DPE library 3.
            Prescribed:indicates prescribed conditions in DPE library (* Values
            are case sensitive)
          example: Bespoke
        conditionTitle:
          maxLength: 256
          type: string
          description: This indicates the title of the Condition.
          example: Approved Plans
        conditionText:
          maxLength: 300000
          type: string
          description: >-
            This indicates the condition text in HTML format. Council should
            send image document with png, jpg, jpeg extension(s) only in the img
            tag in Condition text. Image size can be maximum 600px in width and
            252 px in height.
          example: >-
            <p><img src ='http://councilbaseurl/Documents/ConImg2.png'
            width='300' height='150'></p>
        conditionReason:
          maxLength: 256
          type: string
          description: >-
            This indicates the reason why a Condition is being added in Council
            library.
          example: Plans condition.
        modificationReason:
          type: string
          description: >-
            This indicates the reason for adding, modifying or deleting
            condition(s) during a MOD DA or Review of determination application.
            This is mandatory when any condition(s) in previously approved DA is
            altered.
          example: Condition modified to change the hours of operation
        typeOfWork:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of work mentioned in the condition. This
            field is mandatory when the value for conditionID is empty. This
            field has following options - 1.Building Work, 2.Demolition Work,
            3.Subdivision Work,4.Remediation Work, 5.Strata Subdivision,
            6.Change of use, 7.Land Subdivision, 8.Other
          example: Demolition work
        developmentStage:
          maxLength: 256
          type: string
          description: >-
            This indicates the stage of development that are relevant to the
            condition. This field has following options - 1. During building
            work, 2. During demolition work, 3. During subdivision work, 4.
            Before building work commences, 5. Before remediation work
            commences, 6. Before subdivision work commences, 7. Before issue of
            an occupation certificate, 8. Ongoing use for subdivision work, 9.
            Occupation and ongoing use, 10. Before issue of a construction
            certificate, 11. Before issue of a subdivision certificate, 12.
            Before issue of a strata certificate, 13. Before issue of a
            subdivision works certificate, 14. On completion of demolition work,
            15.On completion of remediation work, 16. Ongoing use for change of
            use, 17. Before demolition work commences, 18. During remediation
            work, 19. General condition
          example: General condition.
        councilConditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
          example: SAMPLE-123
        updatedByEmail:
          maxLength: 256
          type: string
          example: abc@gmail.com
          description: >-
            This refers to the email address of the User. User is expected to
            be   registered in the planning portal.
    ConsentConditionsValidationFailure:
      required:
        - conditionTitle
        - conditionText
        - failureReason
      type: object
      properties:
        conditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Condition ID generated by DPE. This field should
            be empty if Conditon is applied only for a specific application and
            Condition is not available in Council library in DPE
          example: COND-123
        conditionType:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of Conditions in library. conditionType can
            have following values. 1.Bespoke:indicates conditions in Council
            library at DPE 2.Model:indicates model conditions in DPE library 3.
            Prescribed:indicates prescribed conditions in DPE library (* Values
            are case sensitive)
          example: Bespoke
        conditionTitle:
          maxLength: 256
          type: string
          description: This indicates the title of the Condition
          example: Approved Plans
        conditionText:
          maxLength: 300000
          type: string
          description: This indicates the HTML Condition text
          example: <p>This a sample HTML condition text</p>
        conditionReason:
          maxLength: 256
          type: string
          description: This indicates the reason why a Condition is created.
          example: Plans condition.
        modificationReason:
          type: string
          description: >-
            This indicates the reason for adding, modifying or deleting
            condition(s) during a MOD DA or Review of determination application.
            This is mandatory when any condition(s) in previously approved DA is
            altered.
          example: Condition modified to change the hours of operation
        typeOfWork:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of work mentioned in the condition. This
            field has following options - 1.Building Work, 2.Demolition Work,
            3.Subdivision Work,4.Remediation Work, 5.Strata Subdivision,
            6.Change of use, 7.Land Subdivision, 8.Other
          example: Demolition work
        developmentStage:
          maxLength: 256
          type: string
          description: >-
            This indicates the stage of development that are relevant to the
            condition. This field has following options - 1. During building
            work, 2. During demolition work, 3. During subdivision work, 4.
            Before building work commences, 5. Before remediation work
            commences, 6. Before subdivision work commences, 7. Before issue of
            an occupation certificate, 8. Ongoing use for subdivision work, 9.
            Occupation and ongoing use, 10. Before issue of a construction
            certificate, 11. Before issue of a subdivision certificate, 12.
            Before issue of a strata certificate, 13. Before issue of a
            subdivision works certificate, 14. On completion of demolition work,
            15.On completion of remediation work, 16. Ongoing use for change of
            use, 17. Before demolition work commences, 18. During remediation
            work, 19. General condition
          example: General condition.
        councilConditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
          example: SAMPLE-123
        updatedByEmail:
          maxLength: 256
          type: string
          example: abc@gmail.com
          description: >-
            This refers to the email address of the User. User is expected to
            be   registered in the planning portal.
        failureReason:
          type: string
          example: Condition validation failure text
          description: This indicates the condition validation failure details
    Success:
      required:
        - statusCode
        - message
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Request is successfully executed
    GenerateNODSuccess:
      required:
        - statusCode
        - message
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: >-
            The generation of NOD will happen offline and once the NOD is
            generated, ePlanning system will notify using the
            NotificationOfNODStatus API
    ConsentConditionsFailure:
      required:
        - statusCode
        - message
        - validationFailure
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: string
          example: Request is unsuccessful
        validationFailure:
          type: array
          description: >-
            These detils gets populated in case if any condition gets failed in
            the request and none of the conditons get added in Eplanning
          items:
            $ref: '#/components/schemas/ConsentConditionsValidationFailure'
    GenerateNOD:
      required:
        - isFinalNOD
        - reasonForApprovalOrRejection
        - isIPCPublicHearing
        - personIssuingDetermination
        - titleOfPersonIssuingDetermination
        - isContactPersonDifferentToPersonDetermining
        - determinationOutcome
        - determiningAuthority
        - determinationDate
        - updatedByEmail
      type: object
      properties:
        isFinalNOD:
          type: boolean
          description: >-
            This enables the consent authority to determine if a draft version
            (word document) or a final version (pdf document) of the NOD needs
            to be created. To generate a Final NOD, value 'true' to be supplied.
            For the draft NOD, 'false' value is required to be supplied.
        consentStartDate:
          type: string
          description: >-
            This indicates the date from which consent starts to operate. This
            field is mandatory if it is a review of a DA and the previous
            determination outcome was refused and present determination outcome
            is approved. And this field is also mandatory if determination
            outcome is approved for new DAs.
          example: '2023-03-16'
          format: date
        consentLapseDate:
          type: string
          description: >-
            This indicates the date from which consent lapses. This field is
            mandatory if it is a review of a DA and the previous determination
            outcome was refused and present determination outcome is approved.
            And this field is also mandatory if determination outcome is
            approved for new DAs.
          example: '2023-03-16'
          format: date
        approvalBody:
          type: string
          description: >-
            This refers to the approval body that have given general terms of
            approval. This field is mandatory if it is an integrated
            development. For e.g, Mining Act 1992, Heritage Act 1977 etc.
          example: Mining Act 1992
          format: string
        deferredMattersDetails:
          type: string
          description: >-
            This holds the details of the deferred matters. This field is
            mandatory if determination outcome is deferred commencement. This
            String can contain HTML data. The length of string should be kept
            <=50,000 to avoid data truncation/data loss. Only HTML tags
            supported are "paragraph", "numbered-list", and "non-numbered list".
            Please do not pass any other HTML tags in this field. Otherwise the
            display of data in NOD may not have the right formatting.
          format: string
        courtCaseName:
          type: string
          description: >-
            This indicates the name of the court case. This field is mandatory
            only when the determining authority is Land and Environment court.
          format: string
        courtCaseNumber:
          type: string
          description: >-
            This indicates associated LEC court case number. This field is
            mandatory only when the determining authority is Land and
            Environment court.
          format: string
        isConceptDevelopment:
          description: >-
            This indicates if the development is a concept development. Value
            'true' indicates that it's a concept development and 'false'
            indicates that it's not a concept development. This field is
            mandatory if determination outcome is approved or deferred
            commencement.
          type: boolean
        conceptDevelopmentType:
          type: string
          example: Concept development application with no development
          description: >-
            This indicates the type of development for Concept development. This
            field have following options - 1.Concept development application
            with no development, 2.Concept development application and the first
            stage of development and 3.Concept development application and the
            final stage of development. This field is mandatory if
            isConceptDevelopment is true.
          format: string
        conceptDevelopmentStages:
          type: string
          example: Stage 1
          description: >-
            This indicates the list of stages of development that apply to this
            application. This field is mandatory if conceptDevelopmentType is
            "Concept development application and the first stage of development"
            or "Concept development application and the final stage of
            development"
          format: string
        BCA:
          type: string
          description: >-
            This indicates the classification code of the building. This field
            is mandatory for a new DA or a review of a DA if the typeOfWork is
            "Buildingwork" and developmentStage is anything but "Before issue of
            a Construction Certificate"
          example: BCA 1234
        isIPCPublicHearing:
          type: boolean
          description: This is to identify if there is a IPCPublicHearing.
        IPCHearingDate:
          type: string
          description: >-
            This indicates the IPC Hearing Date. This is mandatory If
            isIPCPublicHearing is true
          example: '2023-03-16'
          format: date
        personIssuingDetermination:
          type: string
          description: This indicates the name of the person issuing determination.
          example: John
          format: string
        titleOfPersonIssuingDetermination:
          type: string
          description: >-
            This indicates the title of the person that has delegated authority
            to determine the application
          example: Council Officer
          format: string
        isContactPersonDifferentToPersonDetermining:
          type: boolean
          description: >-
            This is to determine if contact person for enquiries different to
            the person issuing this determination.
        contactPersonForEnquiry:
          type: string
          description: >-
            This indicates the name of the person for enquiry mandatory when
            isContactPersonDifferentToPersonDetermining is true or if it is a
            review of a DA
          example: Pattrick
          format: string
        titleOfPersonForEnquiry:
          type: string
          description: >-
            This indicates the title of the person for enquiry mandatory when
            isContactPersonDifferentToPersonDetermining is true or if it is a
            review of a DA
          example: Assessment Officer
          format: string
        reasonForApprovalOrRejection:
          type: string
          description: >-
            This indicates the reason for approval or rejection. This String can
            contain HTML data. The length of string should be kept <=50,000 to
            avoid data truncation/data loss. Only HTML tags supported are
            "paragraph", "numbered-list", and "non-numbered list". Please do not
            pass any other HTML tags in this field. Otherwise the display of
            data in NOD may not have the right formatting.
          example: Case is pending with LEC.
          format: string
        determinationOutcome:
          type: string
          description: >-
            This indicates the determination outcome of the application.This
            field have following options 1.Approved, 2.Refused, 3.Deferred
            commencement consent
          example: Approved
          format: string
        determiningAuthority:
          type: string
          description: >-
            This indicates the authorized determining authority. This field have
            following options 1.Central Sydney Planning Committee, 2.Sydney /
            Regional Planning Panel, 3.Local Planning Panel, 4.Council,
            5.Minister for Planning, 6.Independent Planning Commission, 7.Land
            and Environment Court
          example: Land and Environment Court
          format: string
        determinationDate:
          type: string
          description: This indicates the determination date of the application.
          example: '2023-03-16'
          format: date
        modifiedApplicationNumber:
          type: string
          description: >-
            This indicates the application number of the modified DA. This field
            is mandatory if it is a review of a modified DA or it is a
            modification of a DA
          example: PAN-1234
          format: string
        typeOfModification:
          type: string
          description: >-
            This indicates the type of modification on the application. This
            field have following options - 1.Section 4.55 (1) of the
            Environmental Planning and Assessment Act 1979, 2.Section 4.55 (1A)
            of the Environmental Planning and Assessment Act 1979, 3.Section
            4.55 (2) of the Environmental Planning and Assessment Act 1979
            4.Section 4.56 of the Environmental Planning and Assessment Act
            1979. This field is mandatory if it is a review of a modified DA or
            it is a modification of a DA
          example: >-
            Section 4.55 (1) of the Environmental Planning and Assessment Act
            1979
          format: string
        signatureName:
          type: string
          maxLength: 500
          format: uri
          example: http://sampleURL.com/api/Documents/signature_PANID.jpg
          description: >-
            URL of the image to be downloaded. This URL should be similar to
            documents. This refers to the name of the signature document needed
            as a part of NOD generation. This supports png, jpg, jpeg formats
            only in the document.
        reviewBody:
          type: string
          description: >-
            This field captures the review body making the determination. This
            field is mandatory only if it is a review of a DA. e.g. Council
          example: Council
          format: string
        aspectsUnderReview:
          type: string
          description: >-
            This field captures the aspects of an application under review. This
            field is mandatory only if it is a review of a DA. The review
            considered the following aspects of the development application.
            e.g.- Determination or Conditions. This String can contain HTML
            data. The length of string should be kept <=50,000 to avoid data
            truncation/data loss. Only HTML tags supported are "paragraph",
            "numbered-list", and "non-numbered list". Please do not pass any
            other HTML tags in this field. Otherwise the display of data in NOD
            may not have the right formatting.
          example: Determination
          format: string
        developmentDescription:
          maxLength: 200
          type: string
          example: >-
            Alterations and additions to dwelling house including extension to
            first floor and reconfiguration of first floor rooftop terrace.
          description: >-
            This is to track the development description and is enabled for the
            consent authority to override the description entered by the
            applicant. This appears in the Notice of Determination document.
            This attribute is under development and will be enabled in the
            future release.
        updatedByEmail:
          maxLength: 256
          type: string
          example: abc@gmail.com
          description: >-
            This refers to the email address of the User. User is expected to
            be   registered in the planning portal.
    SanitizeData:
      required:
        - conditions
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/SanitizeDataConditions'
    SanitizeDataConditions:
      required:
        - conditionText
      type: object
      properties:
        conditionText:
          maxLength: 5000
          type: string
          description: This indicates the condition text that is required to be sanitized.
          example: <p>This a sample HTML condition text</p>
    principalCertifierDetailsBody:
      type: object
      description: >-
        This is to track the details of the principal certifier and their
        individual registration details.
      required:
        - accreditationNo
        - fullName
      properties:
        accreditationNo:
          type: string
          maxLength: 32
          description: >-
            This is to track the certifier's registration number. It should be
            registered in either Building Certifiers Public Register Portal or
            the Automatic Mutual Recognition system.
          example: BDC1234 OR AMR-123456
        fullName:
          type: string
          maxLength: 100
          description: >-
            This is to track the principal certifier's fullname. Please Note -
            If Building Certifiers Public Register Portal or the Automatic
            Mutual Recognition system contains fullname for the supplied
            accreditation number, then API will consider that fullname.
            Otherwise the supplied value will be considered for update.
          example: John Smith
    assignedIndividualCertifierDetailsBody:
      type: object
      description: >-
        This is to track the registration details of the individual certifier if
        the inspection was carried out by another certifier ( as agreed with the
        principal certifier). Either the principal certifier or the assigned
        individual certifier is expected to conduct the inspection and the
        values to be supplied accordingly.
      required:
        - accreditationNo
        - fullName
        - email
        - mobileNumber
        - organisationName
        - organisationAddress
      properties:
        accreditationNo:
          type: string
          maxLength: 32
          description: >-
            This is to track the certifier's registration number. It should be
            registered in either Building Certifiers Public Register Portal or
            the Automatic Mutual Recognition system.
          example: BDC1234 OR AMR-123456
        fullName:
          type: string
          maxLength: 100
          description: >-
            This is to track the certifier's name.  Please Note - If Building
            Certifiers Public Register Portal or the Automatic Mutual
            Recognition system contains fullname for the supplied accreditation
            number, then API will consider that fullname. Otherwise the supplied
            value will be considered for update.
          example: John Smith
        email:
          type: string
          maxLength: 250
          description: >-
            This is to track the principal certifier's email address. Please
            Note - If Building Certifiers Public Register Portal or the
            Automatic Mutual Recognition system contains email for the supplied
            accreditation number, then API will consider that email. Otherwise
            the supplied value will be considered for update.
          example: pc@dpie.com
        mobileNumber:
          maxLength: 20
          description: >-
            This is to track the principal certifier's mobile number.  Please
            Note - If Building Certifiers Public Register Portal or the
            Automatic Mutual Recognition system contains mobile number for the
            supplied accreditation number, then API will consider that mobile
            number. Otherwise the supplied value will be considered for update.
          pattern: ^[0-9]+$
          type: string
          example: 434340789
        organisationName:
          type: string
          maxLength: 250
          description: >-
            This is to track the certifier's organisation name. Please Note - If
            Building Certifiers Public Register Portal or the Automatic Mutual
            Recognition system contains organisation name for the supplied
            accreditation number, then API will consider that organisation name.
            Otherwise the supplied value will be considered for update.
          example: John Smith
        organisationAddress:
          type: string
          maxLength: 250
          description: >-
            This indicates certifier's organisation address. Please Note - If
            Building Certifiers Public Register Portal or the Automatic Mutual
            Recognition system contains organisation address for the supplied
            accreditation number, then API will consider that organisation
            address. Otherwise the supplied value will be considered for update.
          example: John Smith
        ABN:
          type: string
          maxLength: 14
          description: >-
            This is to track the Australian Business Number (ABN) which is a
            unique 14 digit identifier issued to all entities registered in the
            Australian Business. Please Note - If Building Certifiers Public
            Register Portal or the Automatic Mutual Recognition system contains
            ABN for the supplied accreditation number, then API will consider
            that ABN. Otherwise the supplied value will be considered for
            update.
          example: 12 345 678 900
        ACN:
          type: string
          maxLength: 11
          description: >-
            This is to track the Australian Company Number (ACN). Please Note -
            If Building Certifiers Public Register Portal or the Automatic
            Mutual Recognition system contains ACN for the supplied
            accreditation number, then API will consider that ACN. Otherwise the
            supplied value will be considered for update.
          example: 123 456 789
    principalCertifierDetailsBodyWDN:
      type: object
      description: >-
        This is to track the details of the principal certifier and their
        individual registration details.
      required:
        - accreditationNo
        - fullName
        - email
        - mobileNumber
      properties:
        accreditationNo:
          type: string
          maxLength: 32
          description: >-
            This is to track the certifier's registration number. It should be
            registered in either Building Certifiers Public Register Portal or
            the Automatic Mutual Recognition system.
          example: BDC1234 OR AMR-123456
        fullName:
          type: string
          maxLength: 100
          description: >-
            This is to track the principal certifier's name. Please Note - If
            Building Certifiers Public Register Portal or the Automatic Mutual
            Recognition system contains fullname for the supplied accreditation
            number, then API will consider that fullname. Otherwise the supplied
            value will be considered for update.
          example: John Smith
        email:
          type: string
          maxLength: 250
          description: >-
            This is to track the principal certifier's email address. Please
            Note - If Building Certifiers Public Register Portal or the
            Automatic Mutual Recognition system contains email for the supplied
            accreditation number, then API will consider that email. Otherwise
            the supplied value will be considered for update.
          example: pc@dpie.com
        mobileNumber:
          maxLength: 20
          description: >-
            This is to track the principal certifier's modile number. Please
            Note - If Building Certifiers Public Register Portal or the
            Automatic Mutual Recognition system contains mobile number for the
            supplied accreditation number, then API will consider that mobile
            number. Otherwise the supplied value will be considered for update.
          pattern: ^[0-9]+$
          type: string
          example: 434340789
    assignedIndividualCertifierDetailsBodyWDN:
      type: object
      description: >-
        This is to track the registration details of the individual certifier if
        the inspection was carried out by another certifier ( as agreed with the
        principal certifier). Either the principal certifier or the assigned
        individual certifier is expected to conduct the inspection and the
        values to be supplied accordingly.
      required:
        - accreditationNo
        - fullName
        - email
        - mobileNumber
        - organisationName
        - organisationAddress
      properties:
        accreditationNo:
          type: string
          maxLength: 32
          description: >-
            This is to track the certifier's registration number. It should be
            registered in either Building Certifiers Public Register Portal or
            the Automatic Mutual Recognition system.
          example: BDC1234 OR AMR-123456
        fullName:
          type: string
          maxLength: 100
          description: >-
            This is to track the certifier's name. Please Note - If Building
            Certifiers Public Register Portal or the Automatic Mutual
            Recognition system contains fullname for the supplied accreditation
            number, then API will consider that fullname. Otherwise the supplied
            value will be considered for update.
          example: John Smith
        email:
          type: string
          maxLength: 250
          description: >-
            This is to track the principal certifier's email address. Please
            Note - If Building Certifiers Public Register Portal or the
            Automatic Mutual Recognition system contains email for the supplied
            accreditation number, then API will consider that email. Otherwise
            the supplied value will be considered for update.
          example: pc@dpie.com
        mobileNumber:
          maxLength: 20
          description: >-
            This is to track the principal certifier's mobile number. Please
            Note - If Building Certifiers Public Register Portal or the
            Automatic Mutual Recognition system contains mobile number for the
            supplied accreditation number, then API will consider that mobile
            number. Otherwise the supplied value will be considered for update.
          pattern: ^[0-9]+$
          type: string
          example: 434340789
        organisationName:
          type: string
          maxLength: 250
          description: >-
            This is to track the certifier's organisation name. Please Note - If
            Building Certifiers Public Register Portal or the Automatic Mutual
            Recognition system contains organisation name for the supplied
            accreditation number, then API will consider that organisation name.
            Otherwise the supplied value will be considered for update.
          example: John Smith
        organisationAddress:
          type: string
          maxLength: 250
          description: >-
            This is to track the certifier's organisation address. Please Note -
            If Building Certifiers Public Register Portal or the Automatic
            Mutual Recognition system contains organisation address for the
            supplied accreditation number, then API will consider that
            organisation address. Otherwise the supplied value will be
            considered for update.
          example: John Smith
        ABN:
          type: string
          maxLength: 14
          description: >-
            This is to track the Australian Business Number (ABN) which is a
            unique 14 digit identifier issued to all entities registered in the
            Australian Business. Please Note - If Building Certifiers Public
            Register Portal or the Automatic Mutual Recognition system contains
            ABN for the supplied accreditation number, then API will consider
            that ABN. Otherwise the supplied value will be considered for
            update.
          example: 12 345 678 900
        ACN:
          type: string
          maxLength: 11
          description: >-
            This is to track the Australian Company Number (ACN). Please Note -
            If Building Certifiers Public Register Portal or the Automatic
            Mutual Recognition system contains ACN for the supplied
            accreditation number, then API will consider that ACN. Otherwise the
            supplied value will be considered for update.
          example: 123 456 789
    addressCSIWDN:
      type: object
      description: >-
        This is to track the address. Either gurasID or the fullAddress is
        required to be supplied. If gurasID is not supplied, then fullAddress
        will be considered for update. Please note, if the attribute's value is
        already loaded from it's parent case, this is field becomes optional.
      properties:
        gurasID:
          type: integer
          description: >-
            This is to track the gurasID which helps to fetch the address from
            NSW address database (GURAS).
          example: 2636480
        fullAddress:
          type: string
          maxLength: 250
          description: >-
            This is to track the fulladdress which will be considered if the
            address is not found using GURAS id.
          example: 68 CROWN STREET RIVERSTONE 2765
    BASIXCertificateDetails:
      type: object
      description: >-
        This is to track the BASIX certificate details and is only applicable
        and required when inspection was performed with inspection type as Final
        Inspection.
      properties:
        BASIXCertificateNumber:
          type: string
          maxLength: 50
          description: >-
            This is to track the BASIX certificate number of the development.
            This is required when inspectionType is Final inspection. Please
            note, if BASIX certificate number is provided, then issuance date
            must be also supplied.
          example: 1370434S
        issuanceDate:
          type: string
          description: >-
            This indicates the BASIX certificate's issuance date. Please note,
            issuance date is required for each BASIX certificate number.
          format: date
          example: '2023-06-17'
        isSelected:
          type: boolean
          description: >-
            This indicates if this BASIX certificate number is selected for this
            inspection case. Additional BASIX certificate numbers can also be
            provided without selecting for current transaction. Please note, all
            the supplied BASIX numbers and their issuance dates will be
            validated even if that is not selected for the current transaction.
    CSIMissed:
      required:
        - propertyAndContactInformation
        - missedInspectionDetails
        - certifierDetails
        - documentaryEvidence
        - documents
        - updatedByEmail
      type: object
      properties:
        propertyAndContactInformation:
          type: object
          required:
            - applicantDetails
            - ownerDetails
            - siteAddress
            - descriptionOfDevelopment
          properties:
            applicantDetails:
              required:
                - fullName
                - email
              type: object
              properties:
                fullName:
                  description: >-
                    This is to track the name of the applicant responsible for
                    the aspect of development. Please note, if the attribute's
                    value is already loaded from it's parent case, this is field
                    becomes optional.
                  type: string
                  maxLength: 100
                  example: John Carter
                email:
                  type: string
                  maxLength: 250
                  description: >-
                    This is to track the email address of the applicant
                    responsible for the aspect of development. Please note, if
                    the attribute's value is already loaded from it's parent
                    case, this is field becomes optional.
                  example: testapplicant@yopmail.com
            ownerDetails:
              type: object
              required:
                - fullName
                - email
                - address
                - contactNumber
              properties:
                fullName:
                  description: >-
                    This is to track the name of the owner responsible for the
                    aspect of development. Please note, if the attribute's value
                    is already loaded from it's parent case, this is field
                    becomes optional.
                  type: string
                  maxLength: 100
                  example: John Carter
                email:
                  type: string
                  maxLength: 250
                  description: >-
                    This is to track the email ID of the owner responsible for
                    the aspect of development. Please note, if the attribute's
                    value is already loaded from it's parent case, this is field
                    becomes optional.
                  example: testapplicant@yopmail.com
                address:
                  $ref: '#/components/schemas/addressCSIWDN'
                contactNumber:
                  maxLength: 20
                  description: >-
                    This is to track the contact number of the owner responsible
                    for the aspect of development.
                  pattern: ^[0-9]+$
                  type: string
                  example: 434340748
                licenseNumber:
                  type: string
                  maxLength: 50
                  description: >-
                    This is to track the Licence number or Permit number (in
                    case of an owner builder).
                  example: cr513631
            siteAddress:
              $ref: '#/components/schemas/addressCSIWDN'
            descriptionOfDevelopment:
              maxLength: 512
              type: string
              description: >-
                This is to track the detailed description of development
                activity.
              example: This site is under the development activity of character.
        missedInspectionDetails:
          type: object
          required:
            - dateOfInspection
            - missedInspectionComments
            - inspectionType
          properties:
            dateOfInspection:
              maxLength: 10
              format: date
              description: This is to track the date on which the inspection was scheduled.
              type: string
              example: '2024-02-21'
            missedInspectionComments:
              maxLength: 512
              type: string
              description: >-
                This is to track the comments of the inspection that was missed.
                A high-level summary provided by the certifier with details of
                the missed inspection.
              example: string
            inspectionType:
              type: string
              maxLength: 250
              description: >-
                This is to track the type of inspection. Required for all types
                of inspection records. Please refer to the reference data API
                for the latest values. Following are the example values.
                1.Footings 2.Slab reinforcement 3.Framework (prior to fixing
                floor, wall and ceiling linings) 4.Waterproofing 5.Stormwater
                drainage (prior to covering) 6.Service Penetrations 7.Bounding
                Wall Construction 8.Fire Resistance Level Wall 9.Swimming Pool
                Barrier 10.Final inspection 11.Other inspection
              example: Footings
            otherInspectionTypeDetails:
              type: string
              maxLength: 100
              description: >-
                This is to track the details of other inspection and is only
                applicable and required when the inspection type is 'Other
                inspection'.
              example: Provides the details when the inspectiontype is otherinspection
            notesFromInspection:
              maxLength: 512
              type: string
              description: This is to track to the optional notes from inspection.
              example: >-
                A high-level notes provided by the certifier with details of the
                missed inspection. Details to include the circumstances that the
                principal certifier considers were unavoidable and caused it to
                be missed and that the work that would have been the subject of
                the missed inspection is satisfactory.
        certifierDetails:
          type: object
          properties:
            principalCertifierDetails:
              $ref: '#/components/schemas/principalCertifierDetailsBody'
        documentaryEvidence:
          maxLength: 512
          type: string
          description: >-
            This is to track the list of documentary evidence relied on to
            satisfy the principal certifier that the work that would have been
            the subject of the missed inspection is satisfactory, including
            evidence of a kind referred to in the Building Code of Australia,
            A5G3.
          example: >-
            These are the list of supporting documents, and here is a
            description of the documents, also these are he necessary comments
            on the evidence.
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    CSIPerformed:
      required:
        - propertyAndContactInformation
        - inspectionDetails
        - certifierDetails
        - updatedByEmail
      type: object
      properties:
        propertyAndContactInformation:
          type: object
          required:
            - siteAddress
          properties:
            applicantDetails:
              type: object
              properties:
                fullName:
                  type: string
                  maxLength: 100
                  description: >-
                    This is to track the name of the applicant responsible for
                    the aspect of development. Please note, if the attribute's
                    value is already loaded from it's parent case, this is field
                    becomes optional.
                  example: John Carter
                email:
                  type: string
                  maxLength: 250
                  description: >-
                    This is to track the email address of the applicant
                    responsible for the aspect of development. Please note, if
                    the attribute's value is already loaded from it's parent
                    case, this is field becomes optional.
                  example: testapplicant@yopmail.com
            ownerDetails:
              type: object
              properties:
                fullName:
                  type: string
                  maxLength: 100
                  description: >-
                    This is to track the full name of the owner responsible for
                    the aspect of development. Please note, if the attribute's
                    value is already loaded from it's parent case, this is field
                    becomes optional.
                  example: John Carter
                email:
                  type: string
                  maxLength: 250
                  description: >-
                    This is to track the email address of the owner responsible
                    for the aspect of development. Please note, if the
                    attribute's value is already loaded from it's parent case,
                    this is field becomes optional.
                  example: testapplicant@yopmail.com
            siteAddress:
              $ref: '#/components/schemas/addressCSIWDN'
            inspectionLocation:
              type: string
              maxLength: 100
              description: >-
                This is to track the details of inspection location. Please
                provide additional description where the work was being
                completed.
              example: 9 AlEXANDER CRESCENT RIVERSTONE 2765
        inspectionDetails:
          type: object
          required:
            - dateOfInspection
            - inspectionType
            - resultOfInspection
          properties:
            dateOfInspection:
              type: string
              format: Date
              maxLength: 10
              description: >-
                This is to track the date on which the inspection was completed.
                This should be after the the determination of the parent case.
              example: '2024-02-21'
            inspectionType:
              type: string
              maxLength: 250
              description: >-
                This is to track the type of inspection. This is required for
                all types of inspection records. Please refer to the reference
                data API for the latest values. Following are the example
                values. 1.Footings 2.Slab reinforcement 3.Framework (prior to
                fixing floor, wall and ceiling linings) 4.Waterproofing 5.
                Stormwater drainage (prior to covering) 6.Service Penetrations
                7.Bounding Wall Construction 8.Fire Resistance Level Wall
                9.Swimming Pool Barrier 10.Final inspection 11. Other inspection
              example: Footings
            otherInspectionTypeDetails:
              type: string
              maxLength: 100
              description: >-
                This is to track the details of other inspection and is only
                applicable and required when the inspection type is 'Other
                inspection'.
              example: other inspection details
            BASIXCertificateDetails:
              type: array
              items:
                $ref: '#/components/schemas/BASIXCertificateDetails'
            notesFromInspection:
              type: string
              maxLength: 512
              description: This is to track the optional notes from inspection.
            resultOfInspection:
              type: string
              maxLength: 250
              description: >-
                This is to track the result of the inspection. Please refer to
                the reference data API for the latest values. Following are the
                example values. 1.Building works are satisfactory 2.
                Satisfactory - subject to additional requirements 3.
                Unsatisfactory - reinspection required
              example: Building works are satisfactory
        certifierDetails:
          type: object
          description: >-
            This is to track the certifier details. Please note, when the
            inspection type is final inspection, then only Principal certifier
            details are mandatory and required. Otherwise, either Principal
            certifier details OR the Assigned Individual Certifier details must
            be provided.
          properties:
            principalCertifierDetails:
              $ref: '#/components/schemas/principalCertifierDetailsBody'
            assignedIndividualCertifierDetails:
              $ref: '#/components/schemas/assignedIndividualCertifierDetailsBody'
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    CreateWDN:
      required:
        - certifierDetails
        - propertyAndContactInformation
        - noticeDetails
        - updatedByEmail
      type: object
      properties:
        certifierDetails:
          type: object
          properties:
            principalCertifierDetails:
              $ref: '#/components/schemas/principalCertifierDetailsBodyWDN'
        propertyAndContactInformation:
          type: object
          required:
            - developerDetails
            - ownerDetails
            - siteAddress
            - consentAuthority
          properties:
            developerDetails:
              type: object
              required:
                - fullName
                - email
                - address
              properties:
                fullName:
                  type: string
                  maxLength: 100
                  description: >-
                    This is to track the name of the developer responsible for
                    the aspect of development. Please note, if the attribute's
                    value is already loaded from it's parent case, this is field
                    becomes optional.
                  example: John Carter
                email:
                  type: string
                  maxLength: 250
                  description: >-
                    This is to track the email ID of the developer responsible
                    for the aspect of development. Please note, if the
                    attribute's value is already loaded from it's parent case,
                    this is field becomes optional.
                  example: testapplicant@yopmail.com
                address:
                  $ref: '#/components/schemas/addressCSIWDN'
            ownerDetails:
              required:
                - fullName
              type: object
              properties:
                fullName:
                  type: string
                  maxLength: 100
                  description: >-
                    This is to track the name of the owner for the aspect of
                    development. Please note, if the attribute's value is
                    already loaded from it's parent case, this is field becomes
                    optional.
                  example: John Carter
            siteAddress:
              $ref: '#/components/schemas/addressCSIWDN'
            consentAuthority:
              type: string
              maxLength: 100
              description: >-
                This is to track the name of the local council or the consent
                authority name. Please note, if the attribute's value is already
                loaded from it's parent case, this is field becomes optional.
              example: BLACKTOWN CITY COUNCIL
        noticeDetails:
          type: object
          required:
            - noticeIssuedDate
            - noticeIssuedTo
            - noticeIssuedToOtherDesc
            - nonComplianceDetails
            - nonComplianceRemedy
            - nonComplianceRemedyDueDate
            - inspectionConductDate
          properties:
            noticeIssuedDate:
              type: string
              maxLength: 10
              format: date
              description: >-
                This is to track the notice issued date. This date should not be
                prior to the appointment of the principal certifier.
              example: '2024-02-21'
            noticeIssuedTo:
              type: string
              maxLength: 250
              description: >-
                This is to track the person to whom the notice is issued to.
                Please refer to the reference data API for the latest values.
                Following are the example values. 1. Land owner 2. Owner builder
                3. Principal contractor 4. Other.
              example: Land owner
            noticeIssuedToOtherDesc:
              type: string
              maxLength: 100
              description: >-
                This is to track the description of notice, and is applicable
                when the notice issued to is 'Other'.
              example: Other person or organisation to whome the notice is issued.
            nonComplianceDetails:
              type: string
              maxLength: 512
              description: This is to track the details of the non-complaince.
              example: null
            nonComplianceRemedy:
              type: string
              maxLength: 512
              description: This is to track the steps taken to rectify non-compliance.
              example: null
            nonComplianceRemedyDueDate:
              type: string
              maxLength: 10
              format: date
              description: >-
                This is to track the due date for remedy of non-compliance. Date
                by which the person responsible for the aspect of development
                must demonstrate that they have remedied the non-compliance.
              example: '2024-02-21'
            inspectionConductDate:
              type: string
              maxLength: 10
              format: date
              description: >-
                This is to track the scheduled date when the inspection is
                proposed to be conducted by the principal certifier. If the
                non-compliance is not remedied by the inspection date, a notice
                will be provided to the relevant consent authority and owner
                within 2 days after the inspection.
              example: '2024-02-21'
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    UpdateWDN:
      type: object
      required:
        - parentCaseID
        - certifierDetails
        - inspectionDetails
        - updatedByEmail
      properties:
        parentCaseID:
          type: string
          maxLength: 32
          description: >-
            This is to track the parent case id (CFT or CDC) to update part B
            (Inspection) information of WDN.
          example: CFT-1234 or CDC-1234
        certifierDetails:
          type: object
          description: >-
            This is to track the certifier details. Either Principal Certifier
            Details or the Assigned Individual Certifier Details must be
            provided.
          properties:
            principalCertifierDetails:
              $ref: '#/components/schemas/principalCertifierDetailsBody'
            assignedIndividualCertifierDetails:
              $ref: '#/components/schemas/assignedIndividualCertifierDetailsBodyWDN'
        inspectionDetails:
          type: object
          required:
            - dateOfInspection
            - WDNComplied
          properties:
            dateOfInspection:
              type: string
              format: date
              maxLength: 10
              description: This is to track the date on which the inspection was performed.
              example: '2023-03-16'
            WDNComplied:
              type: boolean
              description: This is to track if WDN was complied.
            WDNFailReason:
              type: string
              maxLength: 512
              description: >-
                This is to track the failure reason for WDN, and is applicable
                and required when the WDN complied is 'false'.
              example: Detailed description of failure.
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
    ResponseMessage:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Case has been created successfully.
        caseID:
          type: string
          description: ID of the case created.
          example: INSP-2788 or WDN-2345
        activityId:
          type: string
        Documents:
          type: array
          description: Attached documents with eplanningDocIds.
          items:
            $ref: '#/components/schemas/DocResponse'
    CreateContribution:
      required:
        - manualCaseReason
        - updatedByEmail
      type: object
      properties:
        manualCaseReason:
          type: string
          description: >-
            This is to track the reasoning for consent authority's initiation of
            a contribution case. Please refer to the reference data API for the
            latest values. Example values are 1.Applicable contributions plan
            found in the planning portal 2.Contributions Case not triggered in
            Applicant's submission 3.Other
          maxLength: 256
        description:
          type: string
          description: >-
            This is to track the detailed reason for a case creation. This is
            required when manualCaseReason is 'Other'.
          maxLength: 2000
        updatedByEmail:
          type: string
          description: >-
            This is to track the Email ID of the user triggering the request.
            User must be registered in the planning portal.
          maxLength: 250
    UpdateContribution:
      required:
        - stepName
        - updatedByEmail
      type: object
      properties:
        stepName:
          maxLength: 32
          type: string
          description: >-
            This indicates the steps involved in the contributions case
            lifecycle. These are given in the sequence as expected by  the
            ePlanning system. To update the values for any step, the respective
            stepName and all corresponding data should be sent. Please refer to
            the reference data API for the latest values. Example values are
            1.PlanAndDevelopment , 2.TotalUnits , 3.CalculateContribution ,
            4.FinaliseContribution .
        isOverridePlans:
          type: boolean
          description: >-
            This is to track whether the consent authority has chosen to
            override automatically identified contributions plans. This
            attribute is applicable when stepName = 'PlanAndDevelopment' and
            unapplicable for other steps. When true is provided, plans sent by
            consent authority will be considered for processing. When false is
            provided, plans sent by consent authority will be ignored. When case
            is initiated by consent authority manually or via CreateContribution
            request to ePlanning system, this is not applicable and will be
            ignored.
        planOverrideReason:
          maxLength: 256
          type: string
          description: >-
            This is to track the reason why consent authority chooses to
            override the system identified contributions plans. This is
            applicable and required for stepName = 'PlanAndDevelopment' and when
            isOverridePlans = true. It will be ignored for any other stepName.
            When case is initiated by consent authority, this is not applicable
            and will be ignored. Please refer to the reference data API for the
            latest values. Example values are - 1.New, revised contributions
            framework(s) apply 2.Different contributions framework(s) apply
            3.Additional contributions framework(s) apply 4.Other
        planOverrideReasonDescription:
          maxLength: 2000
          type: string
          description: >-
            This indicates the detailed description for overriding the plans.
            This is applicable and required for stepName = 'PlanAndDevelopment'
            when isOverridePlans = true & planOverrideReason = Other. It will be
            ignored for any other stepName. When case is initiated by consent
            authority, this is not applicable and will be ignored.
        contributionPlans:
          type: array
          description: >-
            This is to track the list of contribution plan identifiers. It is
            applicable and required for stepName = 'PlanAndDevelopment' & when
            isOverridePlans = true. This will be ignored for any other stepName.
            This is also required when case is initiated by consent authority
            manually or via CreateContribution request to ePlanning. Please
            refer to the reference data API for the latest values.
          items:
            type: object
            properties:
              planId:
                type: string
                maxLength: 32
                description: >-
                  This is to track the unique contributions plan identifier that
                  the consent authority chooses to use for calculation purpose
                  by overriding the system identified plan(s). This is
                  applicable and required for stepName = 'PlanAndDevelopment'
                  when isOverridePlans = true and will be ignored for any other
                  stepName. Please refer to the reference data API for the
                  latest values.
        previousContributionInformation:
          type: array
          maxLength: 2048
          description: >-
            This is to track the previous arrangements which may impact
            contributions for new development. This attribute is applicable when
            stepName = 'PlanAndDevelopment' and will be ignored for any other
            stepName. Example values are - 1.Previous payment made for state
            contributions, 2.State planning agreement applies to the
            development.
          items:
            type: string
        isOverrideApplicantInputs:
          type: boolean
          description: >-
            This is to track if consent authority has chosen to update
            development inputs provided by applicant. This attribute is
            applicable when stepName = 'PlanAndDevelopment' and will be ignored
            for any other stepName. When true is provided, development details
            shared by consent authority will be considered for processing. When
            false is provided, development details shared by consent authority
            will be ignored. When case is initiated by consent authority
            manually or via CreateContribution request to ePlanning system, this
            is not applicable and will be ignored.
        proposedDevelopment:
          type: array
          required:
            - developmentCategory
            - developmentTypes
          description: >-
            This is applicable when stepName = 'PlanAndDevelopment' and
            isOverrideApplicantInputs is 'true' and will be ignored for any
            other stepName. If consent authority does not provide any data for
            this condition then ePlanning system processes data if provided by
            the applicant for this case. Please refer to the reference data API
            for the latest values.
          items:
            type: object
            properties:
              developmentCategory:
                maxLength: 256
                type: string
                description: >-
                  This is the category/grouping name for all developments and
                  required for each corresponding developmentType. Please refer
                  to the reference data API for the latest values.Example values
                  are - 1.Agriculture 2.Commercial Development 3.Existing
                  residential lots 4.Industrial development 5.Infrastrucute
                  6.Manufactured home estate 7.Residential Accommodation
                  8.Subdivision 9.Supporting development .
              developmentTypes:
                type: array
                items:
                  required:
                    - developmentType
                  type: object
                  properties:
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the development provided by consent
                        authority based on corresponding category name.Please
                        refer to the reference data API for the latest values.
        stages:
          type: array
          description: >-
            This is to track the number of stages of development in a
            Contribution case. This is applicable and required when stepName =
            'PlanAndDevelopment' OR 'TotalUnits' OR  'CalculateContribution'.
            Note- multiple stages are not applicable under a Complying
            Develoment Certificate parent application.
          items:
            type: object
            properties:
              proposedDevelopmentUses:
                type: array
                description: >-
                  This is applicable and required when stepName = TotalUnits.
                  Please refer to reference data API with attribute =
                  'applicableDevelopment' for the latest values for planId,
                  developmentType, unitOfCharge.
                items:
                  type: object
                  properties:
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This indicates the plan ID that charges for the
                        developments proposed in the contribution application.
                        This is applicable and required when stepName =
                        TotalUnits.
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This indicates the chargeable development found in the
                        plan for corresponding planID. This is applicable and
                        required when stepName = TotalUnits.
                    unitOfCharge:
                      maxLength: 64
                      type: string
                      description: >-
                        This is to track the unit of charge for corresponding
                        chargeable developmentType. This is applicable and
                        required when stepName = TotalUnits.
                    totalUnits:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the total number of units for each
                        chargeable development being submitted in the
                        application. This is applicable and required when
                        stepName = TotalUnits.It is a mandatory field.
              isExistingDevelopment:
                type: boolean
                description: >-
                  This is to track if the consent authority wants to add any
                  existing development for the site address. Example values are
                  Yes or No. This is applicable when stepName =
                  'PlanAndDevelopment' and ignored for any other stepName.
              existingDevelopment:
                type: array
                description: >-
                  This is to track any existing developments for which applicant
                  can get a credit during contribution calculation. This is
                  applicable when stepName = 'PlanAndDevelopment' and
                  isOverrideApplicantInputs is 'true' and isExistingDevelopment
                  is 'true'. This will be ignored for any other stepName. If
                  consent authority does not provide any data for this condition
                  then ePlanning system processes data provided by the applicant
                  for this case. Please refer to the reference data API for the
                  latest values.
                items:
                  type: object
                  properties:
                    developmentCategory:
                      maxLength: 256
                      type: string
                      description: >-
                        This is the category/grouping name for all developments
                        and required for each corresponding developmentType.
                        This is applicable when stepName = 'PlanAndDevelopment'
                        and isOverrideApplicantInputs is 'true' and
                        isExistingDevelopment is 'true' and required for each
                        developmentType provided. This is ignored for any other
                        stepName. Please refer to the reference data API for the
                        latest values. Example values are - 1.Agriculture
                        2.Commercial Development 3.Existing residential lots
                        4.Industrial development 5.Infrastructure 6.Manufactured
                        home estate 7.Residential Accommodation 8.Subdivision
                        9.Supporting development .
                    developmentTypes:
                      type: array
                      items:
                        required:
                          - developmentType
                        type: object
                        properties:
                          developmentType:
                            maxLength: 256
                            type: string
                            description: >-
                              This is to track the development provided by
                              consent authority based on corresponding category
                              name. This is applicable when stepName =
                              'PlanAndDevelopment' and isOverrideApplicantInputs
                              is 'true' and isExistingDevelopment is 'true' and
                              required under each corresponding
                              developmentCategory provided. This is ignored for
                              any other stepName. Please refer to the reference
                              data API for the latest values.
              existingDevelopmentUses:
                type: array
                description: >-
                  This is to track the existing developments for which applicant
                  can get a credit during contribution calculation. This is
                  applicable and required when stepName = 'TotalUnits' and
                  chargeable development has been identified under attribute
                  'existingDevelopment'. Please refer to reference data API with
                  attribute = 'applicableDevelopment' for the latest values for
                  planId, developmentType, unitOfCharge.
                items:
                  type: object
                  properties:
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This indicates the identifier for contributions plan.
                        that charges for the developments provided for attribute
                        'existingDevelopment' in the contribution application.
                        This is applicable and required when stepName =
                        TotalUnits and chargeable developments are identified
                        for attribute 'existingDevelopment'.
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This indicates the chargeable development found in the
                        plan for corresponding planID. This is applicable and
                        required when stepName = TotalUnits and chargeable
                        developments are identified for attribute
                        'existingDevelopment'.
                    unitOfCharge:
                      maxLength: 64
                      type: string
                      description: >-
                        This is to track the unit of charge for corresponding
                        chargeable development found in at least one of the
                        plans applicabe for the case. This is applicable and
                        required when stepName = TotalUnits and chargeable
                        developments are identified for attribute
                        'existingDevelopment'. Please refer to the reference
                        data API for the latest values.
                    totalUnits:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the total number of units for each
                        chargeable development being submitted in the
                        application. This is applicable and required when
                        stepName = TotalUnits and chargeable developments are
                        identified for attribute 'existingDevelopment'. It is a
                        mandatory field.
              contributionAssessmentDetails:
                type: array
                description: >-
                  This is to track the timing of payment and if any amount
                  adjustment is to be made for contributions amount relating to
                  each applicable plan. It is applicable  and required for
                  stepName = 'CalculateContribution' when contributions amount
                  is greater than 0$.
                items:
                  type: object
                  properties:
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the ID of a contributions plan being
                        used for calculation.
                    assessedAmount:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the amount provided by consent
                        authority to adjust the system calculated amount.
                        Allowed values are greater than or equal to $0.00 . If
                        this is not provided, it will be considered that
                        ePlanning system calculated amount is not adjusted. This
                        is applicable for stepName = 'CalculateContribution'.
                    timingOfPayment:
                      maxLength: 256
                      type: string
                      description: >-
                        This indicates the timing of the payment when the
                        corresponding certificate will be issued after the
                        payment. This is applicable and required when stepName =
                        'CalculateContribution' and contributions amount is >
                        $0. Please refer to the reference data API for the
                        latest values. Example values -  'When application is
                        under parent DA case' - 1.Construction certificate,
                        2.Occupation certificate, 3.Subdivision certificate,
                        4.Subdivision Works certificate, 5.Subdivision
                        certificate OR Construction certificate, 6.Subdivision
                        certificate OR Occupation certificate. Example values
                        'When application is under parent CDC case' -
                        1.Occupation certificate, 2.Subdivision certificate,
                        3.Intention to Commence Work, 4.Subdivision certificate
                        OR Occupation certificate , 5.Subdivision Certificate OR
                        Intention to Commence Work
                    assessedAmountReason:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the reason a consent authority chooses
                        to adjust the system calculated amount. This is
                        applicable and required when stepName =
                        'CalculateContribution' and assessedAmount is greater
                        than or equal to $0.00.Please refer to the reference
                        data API for the latest values. Example values are
                        1.Exemption , 2.Planning Agreement , 3.Land dedication ,
                        4.Previous provision of material public benefit ,
                        5.Discount applied , 6.Other.
              assessedAmountReasonDescription:
                maxLength: 2000
                type: string
                description: >-
                  This is to track the detailed reason the consent authority
                  chose to adjust the system calculated amount.This is
                  applicable and required when stepName =
                  'CalculateContribution' and assessedAmount is greater than or
                  equal to $0.00 for any one of the plans under each stage.
        isFinaliseContribution:
          type: boolean
          description: >-
            This is applicable and required when stepName =
            'FinaliseContribution'. By providing 'true' for this attribute,
            consent authority is agreeing to all required declaration on the
            Housing and Productivity contribution calculation and accompanying
            documents  is correct. The case will be closed and contribution
            details cannot be changed or revised once this attribute is
            submitted as 'true'.
        documents:
          type: array
          description: >-
            This is applicable for all the steps and not mandatory. But, please
            note that for StepName = 'PlanAndDevelopment',
            previousContributionsInformation is required to upload a document
            and for stepName = 'CalculateContribution', assessedAmount should be
            greater than $0.00 to upload a document.
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedByEmail:
          maxLength: 250
          type: string
          description: >-
            This is to track the Email ID of the user triggering the request.
            User must be registered in the planning portal.
    CreateContributionResponse:
      required:
        - caseID
        - statusCode
        - message
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        caseID:
          type: string
          example: CON-1104
        message:
          type: string
          example: Request is successful.
        details:
          type: string
          example: Inner Exceptions, Stack Trace, Json Schema etc
    UpdateContributionResponse:
      required:
        - statusCode
        - message
        - activityId
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Request is successful.
        activityId:
          type: string
          example: CON-1104
        details:
          type: string
          example: Inner Exceptions, Stack Trace, Json Schema etc
    ContributionResponse400:
      required:
        - errorCode
        - statusCode
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: string
          example: >-
            Malformed request syntax, invalid attributes, invalid request
            message.
        activityId:
          type: string
          example: 00000011-0ab-xy00-0000-500000000000
        errorCode:
          type: string
          example: DPE_TMS01
        details:
          type: string
          example: Inner Exceptions, Stack Trace, etc
    ContributionResponse404:
      required:
        - errorCode
        - statusCode
      type: object
      properties:
        statusCode:
          type: integer
          example: 404
        message:
          type: string
          example: Resource not found, case locked by another user.
        activityId:
          type: string
          example: 00000011-0ab-xy00-0000-500000000000
        errorCode:
          type: string
          example: DPE_TMS01
        details:
          type: string
          example: Inner Exceptions, Stack Trace, etc
  securitySchemes:
    api_key:
      type: apiKey
      name: api-key
      in: header
